API Documentation
Buffer.h
1 // Buffer.h
3 //
5 
6 namespace nkGraphics
7 {
14  class DLL_GRAPHICS_EXPORT Buffer : public ShaderResource, public nkExport::Exportable
15  {
16  public :
17 
21  Buffer () ;
25  Buffer (const Buffer& other) = delete ;
29  virtual ~Buffer () ;
30 
31  // Getters
35  unsigned int getElementByteSize () const ;
39  unsigned int getElementCount () const ;
43  unsigned int getTotalByteSize () const ;
47  virtual USAGE getUsage () const = 0 ;
51  virtual BIND_FLAG getBindFlag () const = 0 ;
55  virtual CPU_ACCESS_FLAG getCpuAccessFlag () const = 0 ;
59  virtual RESOURCE_MISC_FLAG getMiscFlag () const = 0 ;
60 
61  // Setters
75  virtual void freeCpuData (bool freeDataPtr) ;
81  virtual void setElementByteSize (unsigned int value) ;
87  virtual void setElementCount (unsigned int value) ;
95  virtual void setUsage (USAGE value) = 0 ;
101  virtual void setBindFlag (BIND_FLAG value) = 0 ;
107  virtual void setCpuAccessFlag (CPU_ACCESS_FLAG value) = 0 ;
113  virtual void setMiscFlag (RESOURCE_MISC_FLAG value) = 0 ;
119  virtual void copyParams (const Buffer& other) = 0 ;
120 
121  // Mapping
132  virtual MapResult map (const MapRequestDescriptor& requestDesc) = 0 ;
138  virtual void unmap (const UnmapRequestDescriptor& requestDesc) = 0 ;
147  virtual void gpuCopyFrom (Buffer& other, const ResourceGpuCopyDescriptor& descriptor) = 0 ;
148 
149  // Usage declarations
156  virtual void prepareForShaderResourceUsage (bool value = true) ;
163  virtual void prepareForComputeResourceUsage (bool value = true) ;
170  virtual void prepareForOutputStreamUsage (bool value = true) ;
171 
172  // Operators
176  Buffer& operator= (const Buffer& other) = delete ;
177 
178  // Import export
184  virtual void exportClassToTree (nkExport::Node* rootNode) override ;
190  virtual void importClassFromTree (nkExport::Node* rootNode) override ;
191  } ;
192 }
nkGraphics::MapResult
Contains all information of the result of a map operation on a resource.
Definition: MapResult.h:12
nkGraphics::RESOURCE_MISC_FLAG
RESOURCE_MISC_FLAG
Available misc flags for resources.
Definition: DxDefinesWrapper.h:56
nkGraphics::Buffer::Buffer
Buffer()
nkGraphics::MapRequestDescriptor
A description of a request to map a resource.
Definition: MapRequestDescriptor.h:12
nkGraphics::Buffer::Buffer
Buffer(const Buffer &other)=delete
nkGraphics::Buffer::prepareForShaderResourceUsage
virtual void prepareForShaderResourceUsage(bool value=true)
nkGraphics::Buffer::unmap
virtual void unmap(const UnmapRequestDescriptor &requestDesc)=0
nkGraphics::Buffer::setMiscFlag
virtual void setMiscFlag(RESOURCE_MISC_FLAG value)=0
nkGraphics::Buffer::freeCpuData
virtual void freeCpuData(bool freeDataPtr)
nkExport::Exportable
An interface to define objects that can be exported using this component.
Definition: Exportable.h:15
nkGraphics::BIND_FLAG
BIND_FLAG
Available binding flags for a resources.
Definition: DxDefinesWrapper.h:25
nkGraphics::Buffer::gpuCopyFrom
virtual void gpuCopyFrom(Buffer &other, const ResourceGpuCopyDescriptor &descriptor)=0
nkGraphics::UnmapRequestDescriptor
Description of an unmap request.
Definition: UnmapRequestDescriptor.h:19
nkGraphics::Buffer
A buffer that will reside on the GPU.
Definition: Buffer.h:15
nkGraphics::Buffer::setElementCount
virtual void setElementCount(unsigned int value)
nkGraphics::Buffer::getElementByteSize
unsigned int getElementByteSize() const
nkGraphics::Buffer::getCpuAccessFlag
virtual CPU_ACCESS_FLAG getCpuAccessFlag() const =0
nkGraphics::Buffer::prepareForComputeResourceUsage
virtual void prepareForComputeResourceUsage(bool value=true)
nkGraphics::Buffer::exportClassToTree
virtual void exportClassToTree(nkExport::Node *rootNode) override
nkGraphics::Buffer::getUsage
virtual USAGE getUsage() const =0
nkGraphics::USAGE
USAGE
Available usage for resources. Drives the memory used for hosting the data.
Definition: DxDefinesWrapper.h:13
nkExport::Node
A node in the tree structure representing the data to export / import.
Definition: Node.h:42
nkGraphics::Buffer::getMiscFlag
virtual RESOURCE_MISC_FLAG getMiscFlag() const =0
nkGraphics::Buffer::importClassFromTree
virtual void importClassFromTree(nkExport::Node *rootNode) override
nkGraphics::Buffer::~Buffer
virtual ~Buffer()
nkGraphics::Buffer::getBindFlag
virtual BIND_FLAG getBindFlag() const =0
nkGraphics::ResourceCpuDataDescriptor
Describes data on the cpu, to be uploaded to the gpu.
Definition: ResourceCpuDataDescriptor.h:12
nkGraphics::Buffer::copyParams
virtual void copyParams(const Buffer &other)=0
nkGraphics::CPU_ACCESS_FLAG
CPU_ACCESS_FLAG
Available cpu access flags.
Definition: DxDefinesWrapper.h:44
nkGraphics::Buffer::getElementCount
unsigned int getElementCount() const
nkGraphics::Buffer::map
virtual MapResult map(const MapRequestDescriptor &requestDesc)=0
nkGraphics::Buffer::prepareForOutputStreamUsage
virtual void prepareForOutputStreamUsage(bool value=true)
nkGraphics::Buffer::setBindFlag
virtual void setBindFlag(BIND_FLAG value)=0
nkGraphics::Buffer::setElementByteSize
virtual void setElementByteSize(unsigned int value)
nkGraphics::Buffer::getTotalByteSize
unsigned int getTotalByteSize() const
nkGraphics
Encompasses all API of component NilkinsGraphics.
Definition: BoundingBox.h:7
nkGraphics::ResourceGpuCopyDescriptor
Holds information about a resource copy happening on the GPU only.
Definition: ResourceGpuCopyDescriptor.h:12
nkGraphics::Buffer::setCpuAccessFlag
virtual void setCpuAccessFlag(CPU_ACCESS_FLAG value)=0
nkGraphics::Buffer::setCpuData
void setCpuData(const ResourceCpuDataDescriptor &data)
nkGraphics::Buffer::setUsage
virtual void setUsage(USAGE value)=0
nkGraphics::ShaderResource
Base class for shader resources. Those are resources that can be fed to a Shader.
Definition: ShaderResource.h:12